package com.ruoyi.sale.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 出库单对象 erp_warehouse_out
 *
 * @author ruoyi
 * @date 2025-05-21
 */
public class ErpWarehouseOut extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 出库单编号 */
    @Excel(name = "出库单编号")
    private String sn;

    /** 出库日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outTime;

    /** 部门id */
    @Excel(name = "部门id")
    private Long deptId;

    /** 仓库id */
    @Excel(name = "仓库id")
    private Long warehouseId;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String memberRealName;

    /** 用户电话 */
    @Excel(name = "用户电话")
    private String memberMobile;

    /** 收货地区id集合 */
    @Excel(name = "收货地区id集合")
    private String shipRegionIds;

    /** 收货地区名称集合 */
    @Excel(name = "收货地区名称集合")
    private String shipRegionNames;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String shipAddr;

    /** 提货人 */
    @Excel(name = "提货人")
    private String consignee;

    /** 订单id集合 */
    @Excel(name = "订单id集合")
    private String orderIdList;

    /** 订单编号集合 */
    @Excel(name = "订单编号集合")
    private String orderSnList;

    /** 配送方式 */
    @Excel(name = "配送方式")
    private String deliveryType;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 物流公司id */
    @Excel(name = "物流公司id")
    private Long logisticsCompanyId;

    /** 物流公司名称 */
    @Excel(name = "物流公司名称")
    private String logisticsCompanyName;

    /** 物流单号 */
    @Excel(name = "物流单号")
    private String trackingNumber;

    /** 物流费用 */
    @Excel(name = "物流费用")
    private String freightPrice;

    /** 自提门店id */
    @Excel(name = "自提门店id")
    private Long storeId;

    /** 自提门店名称 */
    @Excel(name = "自提门店名称")
    private String storeName;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date shipTime;

    /** 审核人id */
    @Excel(name = "审核人id")
    private Long auditById;

    /** 审核人名称 */
    @Excel(name = "审核人名称")
    private String auditByName;

    /** 仓库提货人id */
    @Excel(name = "仓库提货人id")
    private Long warehouseConsigneeId;

    /** 仓库提货人名称 */
    @Excel(name = "仓库提货人名称")
    private String warehouseConsigneeName;

    /** 创建者 */
    @Excel(name = "创建者")
    private String creator;

    /** 更新者 */
    @Excel(name = "更新者")
    private String updater;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSn(String sn)
    {
        this.sn = sn;
    }

    public String getSn()
    {
        return sn;
    }
    public void setOutTime(Date outTime)
    {
        this.outTime = outTime;
    }

    public Date getOutTime()
    {
        return outTime;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setWarehouseId(Long warehouseId)
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId()
    {
        return warehouseId;
    }
    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    public String getDeptName()
    {
        return deptName;
    }
    public void setWarehouseName(String warehouseName)
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName()
    {
        return warehouseName;
    }
    public void setMemberRealName(String memberRealName)
    {
        this.memberRealName = memberRealName;
    }

    public String getMemberRealName()
    {
        return memberRealName;
    }
    public void setMemberMobile(String memberMobile)
    {
        this.memberMobile = memberMobile;
    }

    public String getMemberMobile()
    {
        return memberMobile;
    }
    public void setShipRegionIds(String shipRegionIds)
    {
        this.shipRegionIds = shipRegionIds;
    }

    public String getShipRegionIds()
    {
        return shipRegionIds;
    }
    public void setShipRegionNames(String shipRegionNames)
    {
        this.shipRegionNames = shipRegionNames;
    }

    public String getShipRegionNames()
    {
        return shipRegionNames;
    }
    public void setShipAddr(String shipAddr)
    {
        this.shipAddr = shipAddr;
    }

    public String getShipAddr()
    {
        return shipAddr;
    }
    public void setConsignee(String consignee)
    {
        this.consignee = consignee;
    }

    public String getConsignee()
    {
        return consignee;
    }
    public void setOrderIdList(String orderIdList)
    {
        this.orderIdList = orderIdList;
    }

    public String getOrderIdList()
    {
        return orderIdList;
    }
    public void setOrderSnList(String orderSnList)
    {
        this.orderSnList = orderSnList;
    }

    public String getOrderSnList()
    {
        return orderSnList;
    }
    public void setDeliveryType(String deliveryType)
    {
        this.deliveryType = deliveryType;
    }

    public String getDeliveryType()
    {
        return deliveryType;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setLogisticsCompanyId(Long logisticsCompanyId)
    {
        this.logisticsCompanyId = logisticsCompanyId;
    }

    public Long getLogisticsCompanyId()
    {
        return logisticsCompanyId;
    }
    public void setLogisticsCompanyName(String logisticsCompanyName)
    {
        this.logisticsCompanyName = logisticsCompanyName;
    }

    public String getLogisticsCompanyName()
    {
        return logisticsCompanyName;
    }
    public void setTrackingNumber(String trackingNumber)
    {
        this.trackingNumber = trackingNumber;
    }

    public String getTrackingNumber()
    {
        return trackingNumber;
    }
    public void setFreightPrice(String freightPrice)
    {
        this.freightPrice = freightPrice;
    }

    public String getFreightPrice()
    {
        return freightPrice;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setStoreName(String storeName)
    {
        this.storeName = storeName;
    }

    public String getStoreName()
    {
        return storeName;
    }
    public void setShipTime(Date shipTime)
    {
        this.shipTime = shipTime;
    }

    public Date getShipTime()
    {
        return shipTime;
    }
    public void setAuditById(Long auditById)
    {
        this.auditById = auditById;
    }

    public Long getAuditById()
    {
        return auditById;
    }
    public void setAuditByName(String auditByName)
    {
        this.auditByName = auditByName;
    }

    public String getAuditByName()
    {
        return auditByName;
    }
    public void setWarehouseConsigneeId(Long warehouseConsigneeId)
    {
        this.warehouseConsigneeId = warehouseConsigneeId;
    }

    public Long getWarehouseConsigneeId()
    {
        return warehouseConsigneeId;
    }
    public void setWarehouseConsigneeName(String warehouseConsigneeName)
    {
        this.warehouseConsigneeName = warehouseConsigneeName;
    }

    public String getWarehouseConsigneeName()
    {
        return warehouseConsigneeName;
    }
    public void setCreator(String creator)
    {
        this.creator = creator;
    }

    public String getCreator()
    {
        return creator;
    }
    public void setUpdater(String updater)
    {
        this.updater = updater;
    }

    public String getUpdater()
    {
        return updater;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("sn", getSn())
                .append("outTime", getOutTime())
                .append("deptId", getDeptId())
                .append("warehouseId", getWarehouseId())
                .append("deptName", getDeptName())
                .append("warehouseName", getWarehouseName())
                .append("memberRealName", getMemberRealName())
                .append("memberMobile", getMemberMobile())
                .append("shipRegionIds", getShipRegionIds())
                .append("shipRegionNames", getShipRegionNames())
                .append("shipAddr", getShipAddr())
                .append("consignee", getConsignee())
                .append("orderIdList", getOrderIdList())
                .append("orderSnList", getOrderSnList())
                .append("deliveryType", getDeliveryType())
                .append("status", getStatus())
                .append("logisticsCompanyId", getLogisticsCompanyId())
                .append("logisticsCompanyName", getLogisticsCompanyName())
                .append("trackingNumber", getTrackingNumber())
                .append("freightPrice", getFreightPrice())
                .append("storeId", getStoreId())
                .append("storeName", getStoreName())
                .append("shipTime", getShipTime())
                .append("createBy", getCreateBy())
                .append("auditById", getAuditById())
                .append("auditByName", getAuditByName())
                .append("warehouseConsigneeId", getWarehouseConsigneeId())
                .append("warehouseConsigneeName", getWarehouseConsigneeName())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("creator", getCreator())
                .append("updater", getUpdater())
                .toString();
    }
}
